<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>PowerVR SDK</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<table width="100%">
  <tr>
    <td width="33%">
      <p align="left">&nbsp;<a href="http://www.imgtec.com"><img border="0" src="IMGLogo.jpg" width="200" height="30"></a></p>
    </td>
    <td width="33%">
      <p align="center"><font color="#808080" face="Arial" size="2">PowerVR Software Development Kit</a></font></p>
    </td>
    <td width="34%">
      <p align="right"><a href="http://www.powervr.com"><img border="0" src="PVRlogo.jpg" width="200" height="27"></a></p>
    </td>
  </tr>
</table>
<hr>
</head><body>
<!-- Generated by Doxygen 1.3.6 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>PVRTFixedPoint.h</h1><a href="PVRTFixedPoint_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/******************************************************************************</span>
00002 <span class="comment"></span>
00003 <span class="comment"> @File         PVRTFixedPoint.h</span>
00004 <span class="comment"></span>
00005 <span class="comment"> @Title        PVRTFixedPoint</span>
00006 <span class="comment"></span>
00007 <span class="comment"> @Version      </span>
00008 <span class="comment"></span>
00009 <span class="comment"> @Copyright    Copyright (C)  Imagination Technologies Limited.</span>
00010 <span class="comment"></span>
00011 <span class="comment"> @Platform     Independant</span>
00012 <span class="comment"></span>
00013 <span class="comment"> @Description  Set of macros and functions to make fixed-point easier to program.</span>
00014 <span class="comment"></span>
00015 <span class="comment">******************************************************************************/</span>
00016 <span class="preprocessor">#ifndef _PVRTFIXEDPOINT_H_</span>
00017 <span class="preprocessor"></span><span class="preprocessor">#define _PVRTFIXEDPOINT_H_</span>
00018 <span class="preprocessor"></span>
00019 <span class="preprocessor">#include "<a class="code" href="PVRTGlobal_8h.html">PVRTGlobal.h</a>"</span>
00020 
00021 <span class="preprocessor">#if defined(BUILD_OGLES) || defined(BUILD_D3DM)</span>
00022 <span class="preprocessor"></span><span class="preprocessor">    #include "PVRTFixedPointAPI.h"</span>
00023 <span class="preprocessor">#else</span>
<a name="l00024"></a><a class="code" href="PVRTFixedPoint_8h.html#a0">00024</a> <span class="preprocessor"></span><span class="preprocessor">    #define VERTTYPE float</span>
00025 <span class="preprocessor"></span><span class="preprocessor">    #ifdef PVRT_FIXED_POINT_ENABLE</span>
00026 <span class="preprocessor"></span><span class="preprocessor">        #error Build option not supported: PVRT_FIXED_POINT_ENABLE</span>
00027 <span class="preprocessor"></span><span class="preprocessor">    #endif</span>
00028 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00029 <span class="preprocessor"></span>
00030 <span class="comment">/* Fixed-point macros */</span>
<a name="l00031"></a><a class="code" href="PVRTFixedPoint_8h.html#a1">00031</a> <span class="preprocessor">#define PVRTF2X(f)      ( (int) ( (f)*(65536) ) )</span>
<a name="l00032"></a><a class="code" href="PVRTFixedPoint_8h.html#a2">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTX2F(x)      ((float)(x)/65536.0f)</span>
<a name="l00033"></a><a class="code" href="PVRTFixedPoint_8h.html#a3">00033</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTXMUL(a,b)   ( (int)( ((PVRTint64)(a)*(b)) / 65536 ) )</span>
<a name="l00034"></a><a class="code" href="PVRTFixedPoint_8h.html#a4">00034</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTXDIV(a,b)   ( (int)( (((PVRTint64)(a))&lt;&lt;16)/(b) ) )</span>
<a name="l00035"></a><a class="code" href="PVRTFixedPoint_8h.html#a5">00035</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTABS(a)      ((a) &lt;= 0 ? -(a) : (a) )</span>
00036 <span class="preprocessor"></span>
00037 <span class="comment">/* Define trig table macros */</span>
00038 <span class="preprocessor">#include "<a class="code" href="PVRTMathTable_8h.html">PVRTMathTable.h</a>"</span>
00039 
00040 <span class="comment">/* Useful values */</span>
<a name="l00041"></a><a class="code" href="PVRTFixedPoint_8h.html#a6">00041</a> <span class="preprocessor">#define PVRT_PI_OVER_TWOf   (3.1415926535f / 2.0f)</span>
<a name="l00042"></a><a class="code" href="PVRTFixedPoint_8h.html#a7">00042</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRT_PIf            (3.1415926535f)</span>
<a name="l00043"></a><a class="code" href="PVRTFixedPoint_8h.html#a8">00043</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRT_TWO_PIf        (3.1415926535f * 2.0f)</span>
<a name="l00044"></a><a class="code" href="PVRTFixedPoint_8h.html#a9">00044</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRT_ONEf       (1.0f)</span>
00045 <span class="preprocessor"></span>
<a name="l00046"></a><a class="code" href="PVRTFixedPoint_8h.html#a10">00046</a> <span class="preprocessor">#define PVRT_PI_OVER_TWOx   PVRTF2X(PVRT_PI_OVER_TWOf)</span>
<a name="l00047"></a><a class="code" href="PVRTFixedPoint_8h.html#a11">00047</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRT_PIx            PVRTF2X(PVRT_PIf)</span>
<a name="l00048"></a><a class="code" href="PVRTFixedPoint_8h.html#a12">00048</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRT_TWO_PIx        PVRTF2X(PVRT_TWO_PIf)</span>
<a name="l00049"></a><a class="code" href="PVRTFixedPoint_8h.html#a13">00049</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRT_ONEx           PVRTF2X(PVRT_ONEf)</span>
00050 <span class="preprocessor"></span>
00051 <span class="comment">/* Fixed-point trig function lookups */</span>
<a name="l00052"></a><a class="code" href="PVRTFixedPoint_8h.html#a14">00052</a> <span class="preprocessor">#define PVRTXCOS(x)     (cos_val[(PVRTXMUL(((PVRTXDIV((x)&lt;0? -(x):(x), PVRT_TWO_PIx)) &amp; 0x0000FFFF), (NUM_ENTRIES-1)))])</span>
<a name="l00053"></a><a class="code" href="PVRTFixedPoint_8h.html#a15">00053</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTXSIN(x)     (sin_val[(PVRTXMUL(((PVRTXDIV((x)&lt;0 ? PVRT_PIx-(x):(x), PVRT_TWO_PIx)) &amp; 0x0000FFFF), (NUM_ENTRIES-1)))])</span>
<a name="l00054"></a><a class="code" href="PVRTFixedPoint_8h.html#a16">00054</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTXTAN(x)     ( (x)&lt;0 ? -tan_val[(PVRTXMUL(((PVRTXDIV(-(x), PVRT_TWO_PIx)) &amp; 0x0000FFFF), (NUM_ENTRIES-1)))] : tan_val[(PVRTXMUL(((PVRTXDIV(x, PVRT_TWO_PIx)) &amp; 0x0000FFFF), (NUM_ENTRIES-1)))] )</span>
<a name="l00055"></a><a class="code" href="PVRTFixedPoint_8h.html#a17">00055</a> <span class="preprocessor"></span><span class="preprocessor">#define PVRTXACOS(x)    (acos_val[PVRTXMUL(((((x) + PVRTF2X(1.0f))&gt;&gt;1) &amp; 0x0000FFFF), (NUM_ENTRIES-1))])</span>
00056 <span class="preprocessor"></span>
00057 <span class="comment">/* Floating-point trig functions lookups (needed by some tools chains that have problems with real math functions) */</span>
00058 <span class="preprocessor">#ifdef USE_TRIGONOMETRIC_LOOKUP_TABLES</span>
00059 <span class="preprocessor"></span>
00060     <span class="comment">/* If trig tables are forced ON in non-fixed-point builds then convert fixed-point trig tables results to float */</span>
00061 <span class="preprocessor">    #define PVRTFCOS(x)             PVRTX2F(PVRTXCOS(PVRTF2X(x)))</span>
00062 <span class="preprocessor"></span><span class="preprocessor">    #define PVRTFSIN(x)             PVRTX2F(PVRTXSIN(PVRTF2X(x)))</span>
00063 <span class="preprocessor"></span><span class="preprocessor">    #define PVRTFTAN(x)             PVRTX2F(PVRTXTAN(PVRTF2X(x)))</span>
00064 <span class="preprocessor"></span><span class="preprocessor">    #define PVRTFACOS(x)            PVRTX2F(PVRTXACOS(PVRTF2X(x)))</span>
00065 <span class="preprocessor"></span>
00066 <span class="preprocessor">#else</span>
00067 <span class="preprocessor"></span>
00068     <span class="comment">/* Trig abstraction macros default to normal math trig functions for full float mode */</span>
<a name="l00069"></a><a class="code" href="PVRTFixedPoint_8h.html#a18">00069</a> <span class="preprocessor">    #define PVRTFCOS(x)             ((float)cos(x))</span>
<a name="l00070"></a><a class="code" href="PVRTFixedPoint_8h.html#a19">00070</a> <span class="preprocessor"></span><span class="preprocessor">    #define PVRTFSIN(x)             ((float)sin(x))</span>
<a name="l00071"></a><a class="code" href="PVRTFixedPoint_8h.html#a20">00071</a> <span class="preprocessor"></span><span class="preprocessor">    #define PVRTFTAN(x)             ((float)tan(x))</span>
<a name="l00072"></a><a class="code" href="PVRTFixedPoint_8h.html#a21">00072</a> <span class="preprocessor"></span><span class="preprocessor">    #define PVRTFACOS(x)            ((float)acos(x))</span>
00073 <span class="preprocessor"></span>
00074 <span class="preprocessor">#endif</span>
00075 <span class="preprocessor"></span>
00076 
00077 <span class="comment">/* Fixed/float macro abstraction */</span>
00078 <span class="preprocessor">#ifdef PVRT_FIXED_POINT_ENABLE</span>
00079 <span class="preprocessor"></span>
00080     <span class="comment">/* Fixed-point operations, including trig tables */</span>
00081 <span class="preprocessor">    #define VERTTYPEMUL(a,b)            PVRTXMUL(a,b)</span>
00082 <span class="preprocessor"></span><span class="preprocessor">    #define VERTTYPEDIV(a,b)            PVRTXDIV(a,b)</span>
00083 <span class="preprocessor"></span><span class="preprocessor">    #define VERTTYPEABS(a)              PVRTABS(a)</span>
00084 <span class="preprocessor"></span>
00085 <span class="preprocessor">    #define f2vt(f)                     PVRTF2X(f)</span>
00086 <span class="preprocessor"></span><span class="preprocessor">    #define vt2f(x)                     PVRTX2F(x)</span>
00087 <span class="preprocessor"></span>
00088 <span class="preprocessor">    #define PVRT_PI_OVER_TWO            PVRT_PI_OVER_TWOx</span>
00089 <span class="preprocessor"></span><span class="preprocessor">    #define PVRT_PI                     PVRT_PIx</span>
00090 <span class="preprocessor"></span><span class="preprocessor">    #define PVRT_TWO_PI                 PVRT_TWO_PIx</span>
00091 <span class="preprocessor"></span><span class="preprocessor">    #define PVRT_ONE                    PVRT_ONEx</span>
00092 <span class="preprocessor"></span>
00093 <span class="preprocessor">    #define PVRTCOS(x)                  PVRTXCOS(x)</span>
00094 <span class="preprocessor"></span><span class="preprocessor">    #define PVRTSIN(x)                  PVRTXSIN(x)</span>
00095 <span class="preprocessor"></span><span class="preprocessor">    #define PVRTTAN(x)                  PVRTXTAN(x)</span>
00096 <span class="preprocessor"></span><span class="preprocessor">    #define PVRTACOS(x)                 PVRTXACOS(x)</span>
00097 <span class="preprocessor"></span>
00098 <span class="preprocessor">#else</span>
00099 <span class="preprocessor"></span>
00100     <span class="comment">/* Floating-point operations */</span>
<a name="l00101"></a><a class="code" href="PVRTFixedPoint_8h.html#a22">00101</a> <span class="preprocessor">    #define VERTTYPEMUL(a,b)            ( (VERTTYPE)((a)*(b)) )</span>
<a name="l00102"></a><a class="code" href="PVRTFixedPoint_8h.html#a23">00102</a> <span class="preprocessor"></span><span class="preprocessor">    #define VERTTYPEDIV(a,b)            ( (VERTTYPE)((a)/(b)) )</span>
<a name="l00103"></a><a class="code" href="PVRTFixedPoint_8h.html#a24">00103</a> <span class="preprocessor"></span><span class="preprocessor">    #define VERTTYPEABS(a)              ( (VERTTYPE)(fabs(a)) )</span>
00104 <span class="preprocessor"></span>
<a name="l00105"></a><a class="code" href="PVRTFixedPoint_8h.html#a25">00105</a> <span class="preprocessor">    #define f2vt(x)                     (x)</span>
<a name="l00106"></a><a class="code" href="PVRTFixedPoint_8h.html#a26">00106</a> <span class="preprocessor"></span><span class="preprocessor">    #define vt2f(x)                     (x)</span>
00107 <span class="preprocessor"></span>
<a name="l00108"></a><a class="code" href="PVRTFixedPoint_8h.html#a27">00108</a> <span class="preprocessor">    #define PVRT_PI_OVER_TWO            PVRT_PI_OVER_TWOf</span>
<a name="l00109"></a><a class="code" href="PVRTFixedPoint_8h.html#a28">00109</a> <span class="preprocessor"></span><span class="preprocessor">    #define PVRT_PI                     PVRT_PIf</span>
<a name="l00110"></a><a class="code" href="PVRTFixedPoint_8h.html#a29">00110</a> <span class="preprocessor"></span><span class="preprocessor">    #define PVRT_TWO_PI                 PVRT_TWO_PIf</span>
<a name="l00111"></a><a class="code" href="PVRTFixedPoint_8h.html#a30">00111</a> <span class="preprocessor"></span><span class="preprocessor">    #define PVRT_ONE                    PVRT_ONEf</span>
00112 <span class="preprocessor"></span>
00113     <span class="comment">/* If trig tables are forced ON in non-fixed-point builds then convert fixed-point trig tables results to float */</span>
<a name="l00114"></a><a class="code" href="PVRTFixedPoint_8h.html#a31">00114</a> <span class="preprocessor">    #define PVRTCOS(x)                  PVRTFCOS(x)</span>
<a name="l00115"></a><a class="code" href="PVRTFixedPoint_8h.html#a32">00115</a> <span class="preprocessor"></span><span class="preprocessor">    #define PVRTSIN(x)                  PVRTFSIN(x)</span>
<a name="l00116"></a><a class="code" href="PVRTFixedPoint_8h.html#a33">00116</a> <span class="preprocessor"></span><span class="preprocessor">    #define PVRTTAN(x)                  PVRTFTAN(x)</span>
<a name="l00117"></a><a class="code" href="PVRTFixedPoint_8h.html#a34">00117</a> <span class="preprocessor"></span><span class="preprocessor">    #define PVRTACOS(x)                 PVRTFACOS(x)</span>
00118 <span class="preprocessor"></span>
00119 <span class="preprocessor">#endif</span>
00120 <span class="preprocessor"></span>
00121 
00122 <span class="comment">// Structure Definitions</span>
00123 
00124 <span class="comment">/*!***************************************************************************</span>
00125 <span class="comment"> @Struct HeaderStruct_Mesh</span>
00126 <span class="comment"> @Brief  Defines the format of a header-object as exported by the MAX plugin.</span>
00127 <span class="comment">*****************************************************************************/</span>
<a name="l00128"></a><a class="code" href="structHeaderStruct__Mesh.html">00128</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00129"></a><a class="code" href="structHeaderStruct__Mesh.html#o0">00129</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      nNumVertex;
<a name="l00130"></a><a class="code" href="structHeaderStruct__Mesh.html#o1">00130</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      nNumFaces;
<a name="l00131"></a><a class="code" href="structHeaderStruct__Mesh.html#o2">00131</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      nNumStrips;
<a name="l00132"></a><a class="code" href="structHeaderStruct__Mesh.html#o3">00132</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      nFlags;
<a name="l00133"></a><a class="code" href="structHeaderStruct__Mesh.html#o4">00133</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      nMaterial;
<a name="l00134"></a><a class="code" href="structHeaderStruct__Mesh.html#o5">00134</a>     <span class="keywordtype">float</span>             fCenter[3];
<a name="l00135"></a><a class="code" href="structHeaderStruct__Mesh.html#o6">00135</a>     <span class="keywordtype">float</span>             *pVertex;
<a name="l00136"></a><a class="code" href="structHeaderStruct__Mesh.html#o7">00136</a>     <span class="keywordtype">float</span>             *pUV;
<a name="l00137"></a><a class="code" href="structHeaderStruct__Mesh.html#o8">00137</a>     <span class="keywordtype">float</span>             *pNormals;
<a name="l00138"></a><a class="code" href="structHeaderStruct__Mesh.html#o9">00138</a>     <span class="keywordtype">float</span>             *pPackedVertex;
<a name="l00139"></a><a class="code" href="structHeaderStruct__Mesh.html#o10">00139</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      *pVertexColor;
<a name="l00140"></a><a class="code" href="structHeaderStruct__Mesh.html#o11">00140</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      *pVertexMaterial;
<a name="l00141"></a><a class="code" href="structHeaderStruct__Mesh.html#o12">00141</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>    *pFaces;
<a name="l00142"></a><a class="code" href="structHeaderStruct__Mesh.html#o13">00142</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>    *pStrips;
<a name="l00143"></a><a class="code" href="structHeaderStruct__Mesh.html#o14">00143</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>    *pStripLength;
00144     <span class="keyword">struct</span>
00145 <span class="keyword">    </span>{
<a name="l00146"></a><a class="code" href="structHeaderStruct__Mesh.html#o15">00146</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  nType;
<a name="l00147"></a><a class="code" href="structHeaderStruct__Mesh.html#o16">00147</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  nNumPatches;
<a name="l00148"></a><a class="code" href="structHeaderStruct__Mesh.html#o17">00148</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  nNumVertices;
<a name="l00149"></a><a class="code" href="structHeaderStruct__Mesh.html#o18">00149</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  nNumSubdivisions;
<a name="l00150"></a><a class="code" href="structHeaderStruct__Mesh.html#o19">00150</a>         <span class="keywordtype">float</span>         *pControlPoints;
<a name="l00151"></a><a class="code" href="structHeaderStruct__Mesh.html#o20">00151</a>         <span class="keywordtype">float</span>         *pUVs;
00152     } Patch;
00153 }   <a class="code" href="structHeaderStruct__Mesh.html">HeaderStruct_Mesh</a>;
00154 
00155 
00156 <span class="preprocessor">#ifdef PVRT_FIXED_POINT_ENABLE</span>
00157 <span class="preprocessor"></span>
00158 <span class="comment">/*!***************************************************************************</span>
00159 <span class="comment"> Defines the format of a header-object as when converted to</span>
00160 <span class="comment"> fixed point.</span>
00161 <span class="comment">*****************************************************************************/</span>
00162 <span class="comment">/*!***************************************************************************</span>
00163 <span class="comment"> @Struct HeaderStruct_Fixed_Mesh</span>
00164 <span class="comment"> @Brief  Defines the format of a header-object as when converted to fixed point.</span>
00165 <span class="comment">*****************************************************************************/</span>
00166 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
00167     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      nNumVertex;
00168     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      nNumFaces;
00169     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      nNumStrips;
00170     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      nFlags;
00171     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      nMaterial;
00172     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>          fCenter[3];
00173     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>          *pVertex;
00174     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>          *pUV;
00175     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>          *pNormals;
00176     <a class="code" href="PVRTFixedPoint_8h.html#a0">VERTTYPE</a>          *pPackedVertex;
00177     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      *pVertexColor;
00178     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>      *pVertexMaterial;
00179     <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>    *pFaces;
00180     <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>    *pStrips;
00181     <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>    *pStripLength;
00182     <span class="keyword">struct</span>
00183 <span class="keyword">    </span>{
00184         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  nType;                <span class="comment">// for the moment, these are left as floats</span>
00185         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  nNumPatches;
00186         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  nNumVertices;
00187         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>  nNumSubdivisions;
00188         <span class="keywordtype">float</span>       *pControlPoints;
00189         <span class="keywordtype">float</span>       *pUVs;
00190     } Patch;
00191 }   HeaderStruct_Fixed_Mesh;
00192 
00193     <span class="keyword">typedef</span> HeaderStruct_Fixed_Mesh <a class="code" href="structHeaderStruct__Mesh.html">HeaderStruct_Mesh_Type</a>;
00194 <span class="preprocessor">#else</span>
<a name="l00195"></a><a class="code" href="PVRTFixedPoint_8h.html#a35">00195</a> <span class="preprocessor"></span>    <span class="keyword">typedef</span> <a class="code" href="structHeaderStruct__Mesh.html">HeaderStruct_Mesh</a> <a class="code" href="PVRTFixedPoint_8h.html#a35">HeaderStruct_Mesh_Type</a>;
00196 <span class="preprocessor">#endif</span>
00197 <span class="preprocessor"></span>
00198 <span class="comment">// Function prototypes</span>
00199 
00200 <span class="comment">/*!***************************************************************************</span>
00201 <span class="comment"> @Function      PVRTLoadHeaderObject</span>
00202 <span class="comment"> @Input         headerObj           Pointer to object structure in the header file</span>
00203 <span class="comment"> @Return        directly usable geometry in fixed or float format as appropriate</span>
00204 <span class="comment"> @Description   Converts the data exported by MAX to fixed point when used in OpenGL</span>
00205 <span class="comment">                ES common-lite profile.</span>
00206 <span class="comment">*****************************************************************************/</span>
00207 <a class="code" href="PVRTFixedPoint_8h.html#a35">HeaderStruct_Mesh_Type</a>* <a class="code" href="PVRTFixedPoint_8h.html#a36">PVRTLoadHeaderObject</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *headerObj);
00208 
00209 <span class="comment">/*!***************************************************************************</span>
00210 <span class="comment"> @Function      PVRTUnloadHeaderObject</span>
00211 <span class="comment"> @Input         headerObj           Pointer returned by LoadHeaderObject</span>
00212 <span class="comment"> @Description   Releases memory allocated by LoadHeaderObject when geometry no longer</span>
00213 <span class="comment">                needed.</span>
00214 <span class="comment">*****************************************************************************/</span>
00215 <span class="keywordtype">void</span> <a class="code" href="PVRTFixedPoint_8h.html#a37">PVRTUnloadHeaderObject</a>(HeaderStruct_Mesh_Type* headerObj);
00216 
00217 
00218 <span class="preprocessor">#endif </span><span class="comment">/* _PVRTFIXEDPOINT_H_ */</span>
00219 
00220 <span class="comment">/*****************************************************************************</span>
00221 <span class="comment"> End of file (PVRTFixedPoint.h)</span>
00222 <span class="comment">*****************************************************************************/</span>
00223 
</pre></div><br>
<br>
<P align=left><FONT size=2><STRONG><A 
   href="http://www.imgtec.com/powervr/insider/legal/index.asp">Copyright</A> � 
   1999-2008, Imagination Technologies Ltd.</STRONG></FONT></P>
<hr>
<address style="align: left;"><small><FONT color=f0f>
Generated by <a href="http://www.doxygen.org/index.html">DOXYGEN</a> 1.3.6</small></address>
</body>
</html>
